<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="../../../../../style.css" type="text/css" media="screen">
<link rel="stylesheet" href="../../../../../print.css" type="text/css" media="print">
<meta content="BspNode,com.derschmale.wick3d.core.bsp.BspNode,negativeChild,partitionPlane,positiveChild,addTriangle,addTriangles,build,childNodeContaining,render" name="keywords">
<title>com.derschmale.wick3d.core.bsp.BspNode</title>
</head>
<body>
<script type="text/javascript" language="javascript" src="../../../../../asdoc.js"></script><script type="text/javascript" language="javascript" src="../../../../../cookies.js"></script><script type="text/javascript" language="javascript">
<!--
				asdocTitle = 'BspNode - Wick3d Documentation';
				var baseRef = '../../../../../';
				window.onload = configPage;
			--></script>
<table style="display:none" id="titleTable" cellspacing="0" cellpadding="0" class="titleTable">
<tr>
<td align="left" class="titleTableTitle">Wick3d Documentation</td><td align="right" class="titleTableTopNav"><a onclick="loadClassListFrame('../../../../../all-classes.html')" href="../../../../../package-summary.html">All&nbsp;Packages</a>&nbsp;|&nbsp;<a onclick="loadClassListFrame('../../../../../all-classes.html')" href="../../../../../class-summary.html">All&nbsp;Classes</a>&nbsp;|&nbsp;<a onclick="loadClassListFrame('../../../../../index-list.html')" href="../../../../../all-index-A.html">Index</a>&nbsp;|&nbsp;<a href="../../../../../index.html?com/derschmale/wick3d/core/bsp/BspNode.html&amp;com/derschmale/wick3d/core/bsp/class-list.html" id="framesLink1">Frames</a><a onclick="parent.location=document.location" href="" style="display:none" id="noFramesLink1">No&nbsp;Frames</a></td><td rowspan="3" align="right" class="titleTableLogo"><img alt="Adobe Logo" title="Adobe Logo" class="logoImage" src="../../../../../images/logo.jpg"></td>
</tr>
<tr class="titleTableRow2">
<td align="left" id="subTitle" class="titleTableSubTitle">Class&nbsp;BspNode</td><td align="right" id="subNav" class="titleTableSubNav"><a href="#propertySummary">Properties</a>&nbsp;| <a href="#methodSummary">Methods</a></td>
</tr>
<tr class="titleTableRow3">
<td colspan="2">&nbsp;</td>
</tr>
</table>
<script type="text/javascript" language="javascript">
<!--
if (!isEclipse() || window.name != ECLIPSE_FRAME_NAME) {titleBar_setSubTitle("Class BspNode"); titleBar_setSubNav(false,true,false,false,false,false,true,false,false,false,false,false,false,false);}
--></script>
<div class="MainContent">
<table cellspacing="0" cellpadding="0" class="classHeaderTable">
<tr>
<td class="classHeaderTableLabel">Package</td><td><a onclick="javascript:loadClassListFrame('class-list.html')" href="package-detail.html">com.derschmale.wick3d.core.bsp</a></td>
</tr>
<tr>
<td class="classHeaderTableLabel">Class</td><td class="classSignature">public class BspNode</td>
</tr>
<tr>
<td class="classHeaderTableLabel">Subclasses</td><td><a href="../bsp/BspTree.html">BspTree</a></td>
</tr>
</table>
<p></p>
  A BspNode object can be either a branch or a leaf in a BSP tree. A branch is divided into two half-spaces: a positive and a negative one, each on the side of a dividing plane.
  Those half-spaces form new BSP nodes, either another branch or a leaf. That way, the whole space is subdivided into smaller recursive regions.
  A leaf is the end of a branch, containing triangles present in that region. It is not divided any further.
  <p></p>
<br>
<hr>
</div>
<a name="propertySummary"></a>
<div class="summarySection">
<div class="summaryTableTitle">Public Properties</div>
<table id="summaryTableProperty" class="summaryTable " cellpadding="3" cellspacing="0">
<tr>
<th>&nbsp;</th><th colspan="2">Property</th><th class="summaryTableOwnerCol">Defined&nbsp;by</th>
</tr>
<tr class="">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol"><a class="signatureLink" href="#negativeChild">negativeChild</a> : <a href="../bsp/BspNode.html">BspNode</a>
<div class="summaryTableDescription">
   This node's child node on the negative side of the partition plane.</div>
</td><td class="summaryTableOwnerCol">BspNode</td>
</tr>
<tr class="">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol"><a class="signatureLink" href="#partitionPlane">partitionPlane</a> : <a href="../geometry/Plane.html">Plane</a>
<div class="summaryTableDescription">
   The partition plane used to divide this node.</div>
</td><td class="summaryTableOwnerCol">BspNode</td>
</tr>
<tr class="">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol"><a class="signatureLink" href="#positiveChild">positiveChild</a> : <a href="../bsp/BspNode.html">BspNode</a>
<div class="summaryTableDescription">
   This node's child node on the positive side of the partition plane.</div>
</td><td class="summaryTableOwnerCol">BspNode</td>
</tr>
</table>
</div>
<a name="methodSummary"></a>
<div class="summarySection">
<div class="summaryTableTitle">Public Methods</div>
<table id="summaryTableMethod" class="summaryTable " cellpadding="3" cellspacing="0">
<tr>
<th>&nbsp;</th><th colspan="2">Method</th><th class="summaryTableOwnerCol">Defined&nbsp;by</th>
</tr>
<tr class="">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol">
<div class="summarySignature">
<a class="signatureLink" href="#BspNode()">BspNode</a>(parent:<a href="BspNode.html">BspNode</a> = null)</div>
<div class="summaryTableDescription">
   Creates a new BspNode object.</div>
</td><td class="summaryTableOwnerCol">BspNode</td>
</tr>
<tr class="">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol">
<div class="summarySignature">
<a class="signatureLink" href="#addTriangle()">addTriangle</a>(triangle:<a href="../geometry/Triangle3D.html">Triangle3D</a>):void</div>
<div class="summaryTableDescription">
   Adds a triangle to the node.</div>
</td><td class="summaryTableOwnerCol">BspNode</td>
</tr>
<tr class="">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol">
<div class="summarySignature">
<a class="signatureLink" href="#addTriangles()">addTriangles</a>(triangles:Array):void</div>
<div class="summaryTableDescription">
   Adds an array of triangles to the node.</div>
</td><td class="summaryTableOwnerCol">BspNode</td>
</tr>
<tr class="">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol">
<div class="summarySignature">
<a class="signatureLink" href="#build()">build</a>():void</div>
<div class="summaryTableDescription">
   Builds the BSP tree from this node on.</div>
</td><td class="summaryTableOwnerCol">BspNode</td>
</tr>
<tr class="">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol">
<div class="summarySignature">
<a class="signatureLink" href="#childNodeContaining()">childNodeContaining</a>(object:<a href="../objects/SpatialObject3D.html">SpatialObject3D</a>):<a href="../bsp/BspNode.html">BspNode</a>
</div>
<div class="summaryTableDescription">
   Return the leaf (most specific) node containing an object's origin point.</div>
</td><td class="summaryTableOwnerCol">BspNode</td>
</tr>
<tr class="">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol">
<div class="summarySignature">
<a class="signatureLink" href="#render()">render</a>(camera:<a href="../../cameras/Camera3D.html">Camera3D</a>, graphics:Graphics):void</div>
<div class="summaryTableDescription">
   Traverses the bsp-node with this node as a starting point and draws the triangles contained within.</div>
</td><td class="summaryTableOwnerCol">BspNode</td>
</tr>
</table>
</div>
<script type="text/javascript" language="javascript">
<!--
showHideInherited();
--></script>
<div class="MainContent">
<a name="propertyDetail"></a>
<div class="detailSectionHeader">Property detail</div>
<a name="negativeChild"></a>
<table cellspacing="0" cellpadding="0" class="detailHeader">
<tr>
<td class="detailHeaderName">negativeChild</td><td class="detailHeaderType">property</td>
</tr>
</table>
<div class="detailBody">
<code>negativeChild:<a href="../bsp/BspNode.html">BspNode</a></code>&nbsp;&nbsp;[read-write]<p>
   This node's child node on the negative side of the partition plane.
   </p><span class="label">Implementation</span>
<br>
<code>&nbsp;&nbsp;&nbsp;&nbsp;public function get negativeChild():<a href="../bsp/BspNode.html">BspNode</a></code>
<br>
<code>&nbsp;&nbsp;&nbsp;&nbsp;public function set negativeChild(value:<a href="../bsp/BspNode.html">BspNode</a>):void</code>
<br>
</div>
<a name="partitionPlane"></a>
<table cellspacing="0" cellpadding="0" class="detailHeader">
<tr>
<td class="detailHeaderName">partitionPlane</td><td class="detailHeaderType">property</td><td class="detailHeaderRule">&nbsp;</td>
</tr>
</table>
<div class="detailBody">
<code>partitionPlane:<a href="../geometry/Plane.html">Plane</a></code>&nbsp;&nbsp;[read-write]<p>
   The partition plane used to divide this node. This will be null if the node is a leaf.
   
   </p><span class="label">Implementation</span>
<br>
<code>&nbsp;&nbsp;&nbsp;&nbsp;public function get partitionPlane():<a href="../geometry/Plane.html">Plane</a></code>
<br>
<code>&nbsp;&nbsp;&nbsp;&nbsp;public function set partitionPlane(value:<a href="../geometry/Plane.html">Plane</a>):void</code>
<br>
<p>
<span class="label">See also</span>
</p>
<div class="seeAlso">
<a href="../geometry/Plane.html" target="">com.derschmale.wick3d.core.geometry.Plane</a>
</div>
</div>
<a name="positiveChild"></a>
<table cellspacing="0" cellpadding="0" class="detailHeader">
<tr>
<td class="detailHeaderName">positiveChild</td><td class="detailHeaderType">property</td><td class="detailHeaderRule">&nbsp;</td>
</tr>
</table>
<div class="detailBody">
<code>positiveChild:<a href="../bsp/BspNode.html">BspNode</a></code>&nbsp;&nbsp;[read-write]<p>
   This node's child node on the positive side of the partition plane.
   </p><span class="label">Implementation</span>
<br>
<code>&nbsp;&nbsp;&nbsp;&nbsp;public function get positiveChild():<a href="../bsp/BspNode.html">BspNode</a></code>
<br>
<code>&nbsp;&nbsp;&nbsp;&nbsp;public function set positiveChild(value:<a href="../bsp/BspNode.html">BspNode</a>):void</code>
<br>
</div>
<a name="constructorDetail"></a>
<div class="detailSectionHeader">Constructor detail</div>
<a name="BspNode()"></a>
<table cellspacing="0" cellpadding="0" class="detailHeader">
<tr>
<td class="detailHeaderName">BspNode</td><td class="detailHeaderParens">()</td><td class="detailHeaderType">constructor</td>
</tr>
</table>
<div class="detailBody">
<code>public function BspNode(parent:<a href="BspNode.html">BspNode</a> = null)</code><p>
   Creates a new BspNode object.
   
   </p><span class="label">Parameters</span>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="20px"></td><td><code><span class="label">parent</span>:<a href="BspNode.html">BspNode</a></code> (default = <code>null</code>)<code></code> &mdash; The parent BspNode which contains the current node.
   </td>
</tr>
</table>
</div>
<a name="methodDetail"></a>
<div class="detailSectionHeader">Method detail</div>
<a name="addTriangle()"></a>
<table cellspacing="0" cellpadding="0" class="detailHeader">
<tr>
<td class="detailHeaderName">addTriangle</td><td class="detailHeaderParens">()</td><td class="detailHeaderType">method</td>
</tr>
</table>
<div class="detailBody">
<code>public function addTriangle(triangle:<a href="../geometry/Triangle3D.html">Triangle3D</a>):void</code><p>
   Adds a triangle to the node.
   
   </p><span class="label">Parameters</span>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="20px"></td><td><code><span class="label">triangle</span>:<a href="../geometry/Triangle3D.html">Triangle3D</a></code> &mdash; The triangle to add.
   
   </td>
</tr>
</table>
<p>
<span class="label">See also</span>
</p>
<div class="seeAlso">
<a href="../geometry/Triangle3D.html" target="">com.derschmale.wick3d.core.geometry.Triangle3D</a>
</div>
</div>
<a name="addTriangles()"></a>
<table cellspacing="0" cellpadding="0" class="detailHeader">
<tr>
<td class="detailHeaderName">addTriangles</td><td class="detailHeaderParens">()</td><td class="detailHeaderType">method</td><td class="detailHeaderRule">&nbsp;</td>
</tr>
</table>
<div class="detailBody">
<code>public function addTriangles(triangles:Array):void</code><p>
   Adds an array of triangles to the node.
      </p><span class="label">Parameters</span>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="20px"></td><td><code><span class="label">triangles</span>:Array</code> &mdash; The triangles to add.
   
   </td>
</tr>
</table>
<p>
<span class="label">See also</span>
</p>
<div class="seeAlso">
<a href="../geometry/Triangle3D.html" target="">com.derschmale.wick3d.core.geometry.Triangle3D</a>
</div>
</div>
<a name="build()"></a>
<table cellspacing="0" cellpadding="0" class="detailHeader">
<tr>
<td class="detailHeaderName">build</td><td class="detailHeaderParens">()</td><td class="detailHeaderType">method</td><td class="detailHeaderRule">&nbsp;</td>
</tr>
</table>
<div class="detailBody">
<code>public function build():void</code><p>
   Builds the BSP tree from this node on. It creates new child nodes if necessary, and invokes the function on the new children.
   </p></div>
<a name="childNodeContaining()"></a>
<table cellspacing="0" cellpadding="0" class="detailHeader">
<tr>
<td class="detailHeaderName">childNodeContaining</td><td class="detailHeaderParens">()</td><td class="detailHeaderType">method</td><td class="detailHeaderRule">&nbsp;</td>
</tr>
</table>
<div class="detailBody">
<code>public function childNodeContaining(object:<a href="../objects/SpatialObject3D.html">SpatialObject3D</a>):<a href="../bsp/BspNode.html">BspNode</a></code><p>
   Return the leaf (most specific) node containing an object's origin point.
   
   </p><span class="label">Parameters</span>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="20px"></td><td><code><span class="label">object</span>:<a href="../objects/SpatialObject3D.html">SpatialObject3D</a></code> &mdash; The SpatialObject3D of which the position needs to be checked.
   </td>
</tr>
</table>
<p></p>
<span class="label">Returns</span>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="20"></td><td><code><a href="../bsp/BspNode.html">BspNode</a></code></td>
</tr>
</table>
<p>
<span class="label">See also</span>
</p>
<div class="seeAlso">
<a href="../objects/SpatialObject3D.html" target="">com.derschmale.wick3d.core.objects.SpatialObject3D</a>
</div>
</div>
<a name="render()"></a>
<table cellspacing="0" cellpadding="0" class="detailHeader">
<tr>
<td class="detailHeaderName">render</td><td class="detailHeaderParens">()</td><td class="detailHeaderType">method</td><td class="detailHeaderRule">&nbsp;</td>
</tr>
</table>
<div class="detailBody">
<code>public function render(camera:<a href="../../cameras/Camera3D.html">Camera3D</a>, graphics:Graphics):void</code><p>
   Traverses the bsp-node with this node as a starting point and draws the triangles contained within.
   
   </p><span class="label">Parameters</span>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="20px"></td><td><code><span class="label">camera</span>:<a href="../../cameras/Camera3D.html">Camera3D</a></code> &mdash; The camera used to determine on which side of the dividing plane it is, defining the order in which the BSP tree is traversed.
   </td>
</tr>
<tr>
<td class="paramSpacer">&nbsp;</td>
</tr>
<tr>
<td width="20px"></td><td><code><span class="label">graphics</span>:Graphics</code> &mdash; The target Graphics object to draw to.
   
   </td>
</tr>
</table>
<p>
<span class="label">See also</span>
</p>
<div class="seeAlso">
<a href="../../cameras/Camera3D.html" target="">com.derschmale.wick3d.cameras.Camera3D</a>
</div>
</div>
<br>
<br>
<hr>
<br>
<p></p>
<center class="copyright"> 
</center>
</div>
</body>
</html>
<!-- -->
